package com.crl.module.connecter.handler
{
	import com.crl.module.connecter.core.INetSender;
	import com.crl.module.connecter.decoder.IDecoder;
	import com.crl.module.connecter.model.CommandInfo;
	
	/**
	 * 解析器管道,也可称路由;
	 * @author crl
	 * 
	 */	
	public interface INetHandler
	{		
		/**
		 * 增加服务器解析器; 
		 * @param parser
		 * @return 
		 * 
		 */		
		function addDecoder(decoder:IDecoder):void;
		
		/**
		 * 删除一个服务器解析器; 
		 * @param parser
		 * @return 
		 * 
		 */		
		function removeDecoder(decoder:IDecoder):Boolean;
		
		
		/**
		 * 取得一个类型解析器列表; 
		 * @param type
		 * @return 
		 * 
		 */		
		function getDecoder(type:String):IDecoder
		
		/**
		 * 当服务器有消息进入时; 
		 * @param server
		 * @param comandInfo
		 * 
		 */		
		function onData(server:INetSender,comandInfo:CommandInfo):void;
	}
}